iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 22
0
自我挑戰組

各種筆記系列 第 22

[Kata] Clojure - Day 22

  • 分享至 

  • xImage
  •  

Sums of Parts

將給予的數列 ls = [0, 1, 3, 6, 10] 分成不同部分的數列直到沒有任何 element,再相加

ls = [0, 1, 3, 6, 10]
ls = [1, 3, 6, 10]
ls = [3, 6, 10]
ls = [6, 10]
ls = [10]
ls = []

回傳每個部分數列的總和 (20, 20, 19, 16, 10, 0)

Solution

(ns sum-of-parts.core)

(defn parts-sums [ls]
  (reductions - (reduce + ls) ls)
)
(reductions f coll)(reductions f init coll)

(reductions + [1 2 3]) ;; (1 3 6)

(reductions conj [] '(1 2 3)) ;; ([] [1] [1 2] [1 2 3])
(reduce f coll)

(reduce + [1 2 3]) ;; 6
(reduce + [1 2])   ;; 3

上一篇
[Kata] Clojure - Day 21
下一篇
[Kata] Clojure - Day 23
系列文
各種筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言